Set also the pointer button bits. (#136636, Dave Neary)
authorTor Lillqvist <tml@iki.fi>
Wed, 10 Mar 2004 22:20:36 +0000 (22:20 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Wed, 10 Mar 2004 22:20:36 +0000 (22:20 +0000)
2004-03-10  Tor Lillqvist  <tml@iki.fi>

* gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
the pointer button bits. (#136636, Dave Neary)

* gdk/win32/gdkwindow-win32.c (show_window_internal): Show
transparent (input only) windows using SetWindowPos(). (#132331,
John Ehresman)

(gdk_window_set_type_hint): For splash screens, remove the resize
handles, menu, and minimize/maximize/close buttons. (#132896)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gdk/win32/gdkevents-win32.c
gdk/win32/gdkwindow-win32.c

index 1f9639a0a257a2dc6b7b135d8b49343c809d34ae..819ee3fcd8ee2f5be3e9881601c1e52d3bcad2e6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
+       the pointer button bits. (#136636, Dave Neary)
+
+       * gdk/win32/gdkwindow-win32.c (show_window_internal): Show
+       transparent (input only) windows using SetWindowPos(). (#132331,
+       John Ehresman)
+
+       (gdk_window_set_type_hint): For splash screens, remove the resize
+       handles, menu, and minimize/maximize/close buttons. (#132896)
+
 Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
index 1f9639a0a257a2dc6b7b135d8b49343c809d34ae..819ee3fcd8ee2f5be3e9881601c1e52d3bcad2e6 100644 (file)
@@ -1,3 +1,15 @@
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
+       the pointer button bits. (#136636, Dave Neary)
+
+       * gdk/win32/gdkwindow-win32.c (show_window_internal): Show
+       transparent (input only) windows using SetWindowPos(). (#132331,
+       John Ehresman)
+
+       (gdk_window_set_type_hint): For splash screens, remove the resize
+       handles, menu, and minimize/maximize/close buttons. (#132896)
+
 Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
index 1f9639a0a257a2dc6b7b135d8b49343c809d34ae..819ee3fcd8ee2f5be3e9881601c1e52d3bcad2e6 100644 (file)
@@ -1,3 +1,15 @@
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
+       the pointer button bits. (#136636, Dave Neary)
+
+       * gdk/win32/gdkwindow-win32.c (show_window_internal): Show
+       transparent (input only) windows using SetWindowPos(). (#132331,
+       John Ehresman)
+
+       (gdk_window_set_type_hint): For splash screens, remove the resize
+       handles, menu, and minimize/maximize/close buttons. (#132896)
+
 Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
index 1f9639a0a257a2dc6b7b135d8b49343c809d34ae..819ee3fcd8ee2f5be3e9881601c1e52d3bcad2e6 100644 (file)
@@ -1,3 +1,15 @@
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
+       the pointer button bits. (#136636, Dave Neary)
+
+       * gdk/win32/gdkwindow-win32.c (show_window_internal): Show
+       transparent (input only) windows using SetWindowPos(). (#132331,
+       John Ehresman)
+
+       (gdk_window_set_type_hint): For splash screens, remove the resize
+       handles, menu, and minimize/maximize/close buttons. (#132896)
+
 Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
index 1f9639a0a257a2dc6b7b135d8b49343c809d34ae..819ee3fcd8ee2f5be3e9881601c1e52d3bcad2e6 100644 (file)
@@ -1,3 +1,15 @@
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also
+       the pointer button bits. (#136636, Dave Neary)
+
+       * gdk/win32/gdkwindow-win32.c (show_window_internal): Show
+       transparent (input only) windows using SetWindowPos(). (#132331,
+       John Ehresman)
+
+       (gdk_window_set_type_hint): For splash screens, remove the resize
+       handles, menu, and minimize/maximize/close buttons. (#132896)
+
 Wed Mar 10 22:30:23 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the
index 1302db8ef2de4cb29424eea5c48380bd5da69e5d..d8290856cc45ebffabc1a8699fd3b8f953fd1dfc 100644 (file)
 #define XBUTTON2 2
 #endif
 
+#ifndef VK_XBUTTON1
+#define VK_XBUTTON1 5
+#define VK_XBUTTON2 6
+#endif
+
 #ifndef MK_XBUTTON1
 #define MK_XBUTTON1 32
 #define MK_XBUTTON2 64
@@ -827,6 +832,17 @@ build_key_event_state (GdkEvent *event,
   if (key_state[VK_CAPITAL] & 0x01)
     event->key.state |= GDK_LOCK_MASK;
 
+  if (key_state[VK_LBUTTON] & 0x80)
+    event->key.state |= GDK_BUTTON1_MASK;
+  if (key_state[VK_MBUTTON] & 0x80)
+    event->key.state |= GDK_BUTTON2_MASK;
+  if (key_state[VK_RBUTTON] & 0x80)
+    event->key.state |= GDK_BUTTON3_MASK;
+  if (key_state[VK_XBUTTON1] & 0x80)
+    event->key.state |= GDK_BUTTON4_MASK;
+  if (key_state[VK_XBUTTON2] & 0x80)
+    event->key.state |= GDK_BUTTON5_MASK;
+
   /* Win9x doesn't distinguish between left and right Control and Alt
    * in the keyboard state as returned by GetKeyboardState(), so we
    * have to punt, and accept either Control + either Alt to be AltGr.
index a87136b33eb055dcd9339e82a739b7cece007fa4..424a5433131927070e9c1d8a94a946785657eac2 100644 (file)
@@ -999,6 +999,21 @@ show_window_internal (GdkWindow *window,
                                 GDK_WINDOW_STATE_WITHDRAWN,
                                 0);
 
+  /* Use SetWindowPos to show transparent windows so automatic redraws
+   * in other windows can be suppressed.
+   */
+  if (GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE) & WS_EX_TRANSPARENT)
+    {
+      UINT flags = SWP_SHOWWINDOW | SWP_NOREDRAW | SWP_NOMOVE | SWP_NOSIZE;
+      if (!raise)
+       flags |= SWP_NOZORDER;
+      if (!raise || GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
+       flags |= SWP_NOACTIVATE;
+
+      SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOP, 0, 0, 0, 0, flags);
+      return;
+    }
+
   old_active_window = GetActiveWindow ();
 
   if (private->state & (GDK_WINDOW_STATE_BELOW | GDK_WINDOW_STATE_ABOVE))
@@ -1078,8 +1093,8 @@ gdk_window_hide (GdkWindow *window)
   
   if (GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE) & WS_EX_TRANSPARENT)
     {
-      SetWindowPos(GDK_WINDOW_HWND (window), HWND_BOTTOM, 0, 0, 0, 0,
-                  SWP_HIDEWINDOW | SWP_NOREDRAW | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE);
+      SetWindowPos (GDK_WINDOW_HWND (window), HWND_BOTTOM, 0, 0, 0, 0,
+                   SWP_HIDEWINDOW | SWP_NOREDRAW | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE);
     }
   else
     {
@@ -3114,6 +3129,12 @@ gdk_window_set_type_hint (GdkWindow        *window,
     case GDK_WINDOW_TYPE_HINT_UTILITY:
       break;
     case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
+      gdk_window_set_decorations (window,
+                                 GDK_DECOR_ALL |
+                                 GDK_DECOR_RESIZEH |
+                                 GDK_DECOR_MENU |
+                                 GDK_DECOR_MINIMIZE |
+                                 GDK_DECOR_MAXIMIZE);
       break;
     case GDK_WINDOW_TYPE_HINT_DOCK:
       break;